home *** CD-ROM | disk | FTP | other *** search
/ Gamers Delight 2 / Gamers Delight 2.iso / Aminet / game / misc / TownMaze.lha / TownMaze / src.lzh / nhbris.c < prev    next >
C/C++ Source or Header  |  1991-08-04  |  1KB  |  47 lines

  1. /*
  2. ** nhbris.c  Copyright 1991 Kent Paul Dolan,
  3. **           Mountain View, CA, USA 94039-0755
  4. **
  5. ** Written to satisfy an inquiry on USENet's rec.games.programmer newsgroup.
  6. ** May be freely used or modified in any non-commercial work.  Copyrighted
  7. ** only to prevent patenting by someone else.
  8. */
  9.  
  10. #include <stdio.h>
  11. #include "townmaze.h"
  12. #include "townproto.h"
  13.  
  14. #ifdef __STDC__
  15. int nhbris(int cellid,int nhbrid)
  16. #else
  17. int nhbris(cellid,nhbrid)
  18.   int cellid, nhbrid;
  19. #endif
  20. {
  21.   int celli, cellj;
  22.  
  23.   celli = cellid / (mazewidth/2);
  24.   cellj = cellid % (mazewidth/2);
  25.  
  26.   switch (nhbrid)
  27.   {
  28.     case 0:
  29.       return ( ( (celli - 1) * (mazewidth/2) ) + cellj ); /* north nhbr */
  30.       break;
  31.     case 1:
  32.       return ( ( celli * (mazewidth/2) ) + cellj + 1); /* east nhbr */
  33.       break;
  34.     case 2:
  35.       return ( ( (celli + 1) * (mazewidth/2) ) + cellj ); /* south nhbr */
  36.       break;
  37.     case 3:
  38.       return ( ( celli * (mazewidth/2) ) + cellj - 1); /* west nhbr */
  39.       break;
  40.     default:
  41.       fprintf(stderr,"bad neighbor id value to nhbris %d\n",nhbrid);
  42.       showdebugmaze();
  43.       freespace();
  44.       exit(1);
  45.   }
  46. }
  47.